In many applications, data can be provided in a time series (data stream), in which data values are provided over a series of time points. Example applications in which data can be expressed in time series include financial applications (e.g., time series of asset prices, revenue, profit, currency exchange rates, etc.), network monitoring (e.g., metrics regarding performance of various aspects of a network, performance metrics of servers, performance metrics of routers, etc.), and so forth.
A conventional technique of visualizing multiple time series is to employ a chart (as shown in FIG. 1A) having two dimensions, where the first dimension (horizontal dimension) corresponds to time and the second dimension (vertical dimension) corresponds to a particular attribute of the time series. Each time series is represented as a curve that corresponds to the attribute values as a function of time. If many curves correspond to different time series are drawn in the same chart, then the chart can become difficult to read due to occlusion caused by multiple curves crossing over each other (see FIG. 1A). Some curves that represent time series with data values may not be visible due to relatively low values of the attribute being depicted in the chart. These curves tend to bunch up near the bottom part of the chart, rendering them undecipherable. Therefore, visualizing a large number of time series with a conventional chart technique is not effective.